package _interview75;

import _object.TreeNode;

/**
 * 104. 二叉树的最大深度
 */
public class No104 {
    /**
     * 1. 自底向上
     */
    public int maxDepth1(TreeNode root) {
        if (root == null) return 0;
        else return Math.max(maxDepth1(root.left), maxDepth1(root.right)) + 1;
    }

    private int ans = 0;

    /**
     * 2. 自顶向下
     */
    public int maxDepth2(TreeNode root) {
        dfs(root, 1);
        return ans;
    }

    private void dfs(TreeNode root, int num) {
        if (root == null) return;
        ans = Math.max(num, ans);
        dfs(root.left, num + 1);
        dfs(root.right, num + 1);
    }
}
